﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#define _CRT_SECURE_NO_WARNINGS 1

//整形
//0为正 1为负-最高位
//正数-原反补相同
//负数-反码等于原码按位取反-补码等于反码加一
//int main() {
//	int num = 10;
//	//1 2 4 8 16 32 64 128 256 512 1024
//	//00000000 00000000 00000000 00001010-原码
//	//00000000 00000000 00000000 00001010-反码
//	//00000000 00000000 00000000 00001010-补码
//	//0x0000000a -16进制形式
//
//	int num2 = -10;
//	//10000000 00000000 00000000 00001010-原码
//	//11111111 11111111 11111111 11110101-反码
//	//11111111 11111111 11111111 11110110-补码
//	//0xfffffff6 -16进制形式
//
//	return 0;
//}

int check_sys() {
	int a = 0x11223344;
	if (*((char*)&a) == 0x44) {
		return 1;
	}
	else {
		return 0;
	}
}
int check_sys2() {
	int a = 1;
	return *(char*)&a;
}
//大端小端
//int main() {
//	//0x11223344 -16进制
//	
//	//字节序 - 是以字节为单位，讨论存储顺序的
//	
//	//大端->把一个数据的低位字节的内容，存放在高地址处，把一个数据的高位字节的内容，存放在低地址处
//	// 11 22 33 44 ->地址由低到高
//	
//	//小端->把一个数据的低位字节的内容，存放在低地址处，把一个数据的高位字节的内容，存放在高地址处
//	// 44 33 22 11 ->地址由低到高
//	//验证当前编译器是大端还是小端
//	//方式①
//	int a = 0x11223344;
//	char b = a;
//	if (b == 0x44) {
//		printf("小端\n");
//	}
//	else {
//		printf("大端\n");//小端存储
//	}
//	//方式②
//	char* p = (char*) & a;
//	if (*p == 0x44) {
//		printf("小端\n");
//	}
//	else {
//		printf("大端\n");
//	}
//	//方式③
//	int check = check_sys();
//	if (check == 1) {
//		printf("小端\n");
//	}
//	else {
//		printf("大端\n");
//	}
//	//方式④
//	int check2 = check_sys2();
//	if (check2 == 1) {
//		printf("小端\n");
//	}
//	else {
//		printf("大端\n");
//	}
//	return 0;
//}